/**
 * 
 */
package org.gaming.prefab.thing.longn;

import org.gaming.prefab.thing.AbstractThingService;
import org.gaming.prefab.thing.IThingType;
import org.gaming.prefab.thing.ThingStorer;
import org.gaming.prefab.thing.cost.CostReceipt;
import org.gaming.prefab.thing.cost.ICostThing;
import org.gaming.prefab.thing.reward.IRewardThing;
import org.gaming.prefab.thing.reward.RewardReceipt;

/**
 * @author YY
 *
 */
public abstract class LongnThingService<Reward extends IRewardThing<Long>, Cost extends ICostThing<Long>> extends
		AbstractThingService<Long, Reward, Cost, RewardReceipt<Long>, CostReceipt<Long>> {

	@SuppressWarnings("unchecked")
	@Override
	public ThingStorer<Long, Reward, Cost, RewardReceipt<Long>, CostReceipt<Long>> getStorer(
			IThingType thingType) {
		LongnThingStorer<?, ?> storer = LongnThingStorer.getStorer(thingType);
		return (ThingStorer<Long, Reward, Cost, RewardReceipt<Long>, CostReceipt<Long>>) storer;
	}

}
